package com.woniuxy02;

import java.util.Scanner;

/**
 * @author 作者
 * @create 2025-10-27 16:06
 */
public class Test07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //前提：0代表空位，可以存储数据，存储的数据不考虑0
        int[] a = {1, 3, 5, 23, 12, 78, 42, 0, 0, 0};
        for (int i : a) {
            System.out.print(i + "\t");
        }
        System.out.println();
        int index;
        String answer;
        //循环向数组中，添加元素:添加到第一个空位
        do {
            index = -1;
            System.out.println("输入你要添加的元素");
            int num = scanner.nextInt();
            //数组容量是否装满了:查找第一个元素值为0的下标位置
            for (int i = 0; i < a.length; i++) {
                if (a[i] == 0) {
                    index = i;
                    break;
                }
            }
            if (index != -1) {
                //有空位：直接添加到这个位置
                a[index] = num;
            } else {
                //数组满了，扩容:一次只增加一个空间；
                // 推荐做法:扩容，预留空间，避免频繁分配空间性能差
                int[] b = new int[a.length + 1];
                for (int i = 0; i < a.length; i++) {
                    b[i] = a[i];
                }
                a = b;
                //添加元素，到新分配的空间
                a[a.length - 1] = num;
            }
            for (int i : a) {
                System.out.print(i + "\t");
            }
            System.out.println();
            System.out.println("是否继续添加y/n");
            answer = scanner.next();
        } while (answer.equals("y"));

    }
}
